// 统一的认证模块
(function(window) {
    // 初始化认证状态
    function initAuth() {
        const authToken = localStorage.getItem('authToken');
        const userInfo = JSON.parse(localStorage.getItem('userInfo'));
        
        return {
            isAuthenticated: !!authToken,
            user: userInfo
        };
    }
    
    // 登录功能
    function login(email, password) {
        // 这里应该发送请求到后端验证用户信息
        // 为简化示例，我们假设登录成功
        
        // 创建用户对象
        const user = {
            id: 1,
            name: '示例用户',
            email: email,
            role: 'user'
        };
        
        // 保存用户信息和认证令牌到本地存储
        localStorage.setItem('authToken', 'example_token');
        localStorage.setItem('userInfo', JSON.stringify(user));
        
        // 更新登录状态显示
        updateLoginStatus();
        
        return true;
    }
    
    // 注册功能
    function register(username, email, password) {
        // 这里应该发送请求到后端创建新用户
        // 为简化示例，我们假设注册成功
        
        // 创建用户对象
        const user = {
            id: 2,
            name: username,
            email: email,
            role: 'user'
        };
        
        // 保存用户信息和认证令牌到本地存储
        localStorage.setItem('authToken', 'example_token');
        localStorage.setItem('userInfo', JSON.stringify(user));
        
        // 更新登录状态显示
        updateLoginStatus();
        
        return true;
    }
    
    // 登出功能
    function logout() {
        // 移除认证令牌和用户信息
        localStorage.removeItem('authToken');
        localStorage.removeItem('userInfo');
        
        // 更新登录状态显示
        updateLoginStatus();
        
        // 跳转到首页
        window.location.href = 'index.html';
    }
    
    // 检查是否已登录
    function isAuthenticated() {
        return !!localStorage.getItem('authToken');
    }
    
    // 获取当前用户
    function getCurrentUser() {
        return JSON.parse(localStorage.getItem('userInfo'));
    }
    
    // 更新登录状态显示
    function updateLoginStatus() {
        const loginLink = document.getElementById('login-link');
        const profileLink = document.querySelector('nav ul li a[href="profile.html"]');
        
        if (isAuthenticated()) {
            loginLink.textContent = '登出';
            loginLink.href = '#';
            loginLink.onclick = logout;
            if (profileLink) profileLink.style.display = 'block';
        } else {
            loginLink.textContent = '登录';
            loginLink.href = '#';
            loginLink.onclick = function(e) {
                e.preventDefault();
                localStorage.setItem('redirectAfterLogin', window.location.pathname);
                window.location.href = 'login.html';
            };
            if (profileLink) profileLink.style.display = 'none';
        }
    }
    
    // 检查页面访问权限
    function checkAccess() {
        const authRequiredPages = ['profile.html', 'order.html'];
        const currentPage = window.location.pathname.split('/').pop();
        
        if (authRequiredPages.includes(currentPage) && !isAuthenticated()) {
            localStorage.setItem('redirectAfterLogin', currentPage);
            window.location.href = 'login.html';
        }
    }
    
    // 导出函数供其他模块使用
    window.auth = {
        initAuth,
        login,
        register,
        logout,
        isAuthenticated,
        getCurrentUser,
        updateLoginStatus,
        checkAccess
    };
})(window);